cnpm 私有服务搭建
#
环境准备- nodejs
- npm
- yarn
- mysql
#
cnpm下载 git 仓库
git clone https://github.com/cnpm/cnpmjs.org.git
cd cnpmjs.org
#
安装 mysqlhttp://note.youdao.com/noteshare?id=0aecd1783eb7914da1817ca44b991ba0
#
创建数据库mysql -uroot -p000000 -e 'DROP DATABASE IF EXISTS npm_db;' &&\mysql -uroot -p000000 -e 'CREATE DATABASE npm_db;' &&\mysql -uroot -p000000 'npm_db' < docs/db.sql &&\mysql -uroot -p000000 'npm_db' -e 'show tables;'
-p000000
密码为000000
- 库名:
npm_db
#
修改数据库配置vi config/index.js
bindingHost: '192.168.9.157', // 服务器 IP 地址, 设置 127.0.0.1 则无法再远端访问, 注释掉也可以
/** * database config */
database: { db: 'npm_db', username: 'root', password: '000000', }
// sync source, upstream registry // If you want to directly sync from official npm's registry // please drop them an email first sourceNpmRegistry: 'http://192.168.9.157:7001', sourceNpmWeb: 'http://192.168.9.157:7002',
或使用 config.json
const SERVER_HOST = "192.168.9.157";
module.exports = { debug: false, enableCluster: false, // enable cluster mode enablePrivate: false, // 启用专用模式,只有管理员可以发布,其他使用只能从源NPM同步包 bindingHost: SERVER_HOST, database: { db: "npm_db", host: "localhost", port: 3306, username: "root", password: "000000" }, admins: { admin: "[email protected]" }, syncModel: "none" // 'none', 'all', 'exist'};
#
管理员账号 // default system admins admins: { // name: email fengmk2: '[email protected]', admin: '[email protected]', dead_horse: '[email protected]', },
#
启动服务npm start
启动CNPM服务器,默认会打开两个端口,7001用于NPM的服务,7002用于Web访问
#
检查防火墙如果无法访问,检查并关闭防火墙 参考
#
nginx 端口映射通过 nginx 将 7001 端口映射至 80 端口
#
使用临时
npm install package-test --registry=http://192.168.9.157:7001
全局
npm config set registry http://192.168.9.157:7001
cnpm config set registry http://192.168.9.157:7001